package 力扣题库;

import java.util.HashMap;
import java.util.Map;

public class p1在数组中求和等于目标值 {
   // 给定一个整数数组 nums 和一个整数目标值 target，
   // 请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。

    public int[] twoSum(int[] nums, int target) {
        int[] res=new int[2];
        if (nums==null || nums.length==0) {
            return res;
        }

        Map<Integer,Integer> map=new HashMap<>();
        for (int i = 0; i <nums.length ; i++) {
            int tmp=target-nums[i];
            if (map.containsKey(tmp)) {
                res[1]=i;
                res[0]=map.get(tmp);
                break;
            }
            map.put(nums[i],i);
        }
        return res;
    }


    public int[] twoSum1(int[] nums, int target) {
        //暴力求解
        for (int i = 0; i <nums.length; i++) {
            for (int j = i+1; j <nums.length; j++) {
                if (nums[i]+nums[j]==target) {
                    //返回两个下标的数组
                    return new int[] {i,j};
                }
            }
        }

        return new int[0];
    }
}
